import 'package:friends_flutter/utils/payment/xd_ios_pay.dart';
import 'package:friends_flutter/utils/payment/xd_pay_helper.dart';

import '../../config/net/api.dart';
import '../loding.dart';

class PayUtils {
  ///创建充值订单
  ///payType: 充值渠道 1-微信扫码支付，3-支付宝扫码支付，2-微信APP支付，4-支付宝APP支付，5-苹果内购，6-金币支付
  ///orderId : 订单id
  ///commodityID: 苹果商品id
  static Future startPay({required int payType, required String orderNo, String? commodityID, Function? function, Function? orderFunction, bool isQuery = false}) async {
    // if (GetPlatform.isIOS) {
    //   rechargeType = 3;
    // }
    // int payType = 0;
    // if (rechargeType == 1) {
    //   payType = 2;
    // } else if (rechargeType == 2) {
    //   payType = 4;
    // } else if (rechargeType == 3) {
    //   payType = 5;
    // } else if (rechargeType == 4) {
    //   payType = 6;
    // }
    if (payType == 0) {
      xdShowToast('请选择正确的支付方式');
      return ;
    }
    Loading.showLoading();
    // Api.createPayOrder(orderNo, payType).then((value) {
    //   Loading.hideLoading();
    //   if (value.success) {
    //     switch (payType) {
    //       case 2: //微信支付
    //
    //         break;
    //
    //       case 4: //支付宝支付
    //         String orderInfo = value.data['data'];
    //         _alipay(orderInfo, orderNo, payType, isQuery, function);
    //         break;
    //
    //       case 5: //TODO 苹果支付
    //         Loading.showLoading();
    //         IOSPayment().iosPay(orderNo, '$commodityID',
    //             onError: (value) {
    //
    //             });
    //         break;
    //       case 6: //金币支付
    //         Loading.showLoading();
    //         dynamic orderInfo = value.data['data'];
    //         // _goldCoinPay(orderInfo, orderNo, payType, isQuery, function);
    //         break;
    //     }
    //   } else if (value.code == 500014) { //订单已经失效
    //     if (orderFunction != null) {
    //       orderFunction.call();
    //     }
    //   } else {
    //     xdShowToast(value.msg ?? '');
    //   }
    // });
  }

  //支付宝支付
  static void _alipay(String orderInfo, String orderId, int payType, bool isQuery, Function? function) {
    toAlipay(orderInfo, (dynamic) async {
      //未安装
      if (dynamic == -1) {
        return;
      }
      //充值成功
      if (dynamic == 9000) {
        if (isQuery) {
          _delayQueryOrderInfo(orderId, payType, function);
        } else {
          if (function != null) {
            function(1);
          }
        }
      } else {
        //充值失败
      }
    });
  }

  // //微信支付
  // static void _weixinPay(BuildContext context, WxPayOrderInfo wxPayOrderInfo,
  //     String orderId, int exchangeMoney, bool isQuery, Function? function) {
  //   toWeixinPay(wxPayOrderInfo, (dynamic) {
  //     //未安装
  //     if (dynamic == -1) {
  //       return;
  //     }
  //     //充值成功
  //     if (dynamic == 9000) {
  //       //埋点
  //       BuriedPointUtil.clickBuriedPoint(BuriedPointName.appRechargeSuccess, params: {'recharge_type' : 'weixin'});
  //
  //       DeviceInfo().userInfo?.firstRechargeStatus = 0;
  //       eventBus.fire(FirstRechargeEvent(false));
  //       TalkingdataAdtracking.onCreateCard(
  //           DeviceInfo().userInfo?.user?.id ?? 'WeChat', '', '微信支付');
  //       TalkingdataAdtracking.onPay1(DeviceInfo().userInfo?.user?.id ?? '',
  //           orderId, exchangeMoney, 'CNY', 'WeChat');
  //       if (isQuery) {
  //         _delayQueryOrderInfo(orderId, function);
  //       }
  //     } else {
  //       //充值失败
  //     }
  //   });
  // }

  //金币支付
  static void _goldCoinPay(dynamic orderInfo, String orderId, int payType, bool isQuery, Function? function) {
    // Api.payWithXdGold(attach: orderInfo, orderNo: orderId, payType: payType).then((value) {
    //   Loading.hideLoading();
    //   if (value.success) {
    //     xdShowToast('支付成功');
    //     if (isQuery) {
    //       _delayQueryOrderInfo(orderId, payType, function);
    //     } else {
    //       if (function != null) {
    //         function(1);
    //       }
    //     }
    //   } else {
    //     xdShowToast(value.msg ?? '');
    //   }
    // });
  }

  ///订单延迟查询
  static void _delayQueryOrderInfo(String orderNo, int payType, Function? function) async {
    Loading.showLoading();
    //等待2秒再查询订单
    await Future.delayed(const Duration(seconds: 2));
    //支付状态 1-待支付，2-支付成功，3-支付失败，4-已取消
    // Api.payOrderState(orderNo, payType).then((respData) {
    //   Loading.hideLoading();
    //   if (respData.success && respData.data['payState'] == 2) {
    //     if (function != null) {
    //       function(1);
    //     }
    //   } else {
    //     xdShowToast('请稍后再刷新账户余额');
    //   }
    // });
  }

  //支付中
  // static showWalletPayLoading(BuildContext context) {
  //   // if (disposed) return;
  //   ProgressDialog.showProgress(
  //     context,
  //     defaulted: false,
  //     child: Container(
  //         width: 100,
  //         height: 100,
  //         padding: const EdgeInsets.only(top: 20),
  //         decoration: const BoxDecoration(
  //             color: Colors.black54,
  //             borderRadius: BorderRadius.all(Radius.circular(8))),
  //         child: Column(
  //           children: [
  //             EasyRotatingCircles(
  //               color: const Color(0xFF8B8AFF),
  //               isSmaller: true,
  //               isLine: false,
  //             ),
  //             const SizedBox(
  //               height: 10,
  //             ),
  //             const Text(
  //               "支付中",
  //               style: TextStyle(fontSize: 13, color: Colors.white),
  //             )
  //           ],
  //         )),
  //   );
  // }
}
